package co.edu.javeriana.konigsberg.xavier.gui.bean;

import java.util.TreeMap;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import co.edu.javeriana.konigsberg.xavier.dto.CategoriaDTO;
import co.edu.javeriana.konigsberg.xavier.dto.ProgramaDTO;

@ManagedBean(name="listaManagerBean")
@SessionScoped
public class ListaManagerBean extends ManagerBean {
	private static final long serialVersionUID = 1L;
	private String genero;
	private TreeMap<String,String> generos;
	private String tipoDocumento;
	private TreeMap<String,String> tiposDocumento;
	private String tipoContrato;
	private TreeMap<String,String> tiposContrato;
	private String estadoOportunidad;
	private TreeMap<String,String> estadosOportunidad;
	private String tipoCampana;
	private TreeMap<String,String> tiposCampanas;
	
	private String estadoPropuestaTecnica = "Propuesta Tecnica";
	private TreeMap<String,String> estadosPropuestaTecnica;
	private String estadoPropuestaFinanciera = "Propuesta Tecnica";
	private TreeMap<String,String> estadosPropuestaFinanciera;
	private String estadoAprobacion = "Para revision";
	private TreeMap<String,String> estadosAprobacion;
	private String estadoInformacionEspecifica = "Aprobada";
	private TreeMap<String,String> estadosInformacionEspecifica;
	private String hora;
	private TreeMap<String,String> horas;
	private String minuto;
	private TreeMap<String,String> minutos;
	private TreeMap<String,String> tiposPropuestas;
	public TreeMap<String, String> getGeneros() {
		generos = new TreeMap<String, String>();
		generos.put("Femenino", "F");
		generos.put("Masculino", "M");
		return generos;
	}
	public void setGeneros(TreeMap<String, String> generos) {
		this.generos = generos;
	}
	public TreeMap<String, String> getTiposDocumento() {
		tiposDocumento = new TreeMap<String, String>();
		tiposDocumento.put("Cedula", "CC");
		tiposDocumento.put("Cedula Extranjeria", "CE");
		tiposDocumento.put("Pasaporte", "P");
		return tiposDocumento;
	}
	public void setTiposDocumento(TreeMap<String, String> tiposDocumento) {
		this.tiposDocumento = tiposDocumento;
	}
	public TreeMap<String, String> getTiposContrato() {
		tiposContrato = new TreeMap<String, String>();
		tiposContrato.put("Indefinido", "I");
		tiposContrato.put("Termino Fijo", "F");
		tiposContrato.put("Prestacion Servicios", "S");
		return tiposContrato;
	}
	public void setTiposContrato(TreeMap<String, String> tiposContrato) {
		this.tiposContrato = tiposContrato;
	}
	public String getGenero() {
		return genero;
	}
	public void setGenero(String genero) {
		this.genero = genero;
	}
	public String getTipoDocumento() {
		return tipoDocumento;
	}
	public void setTipoDocumento(String tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}
	public String getTipoContrato() {
		return tipoContrato;
	}
	public void setTipoContrato(String tipoContrato) {
		this.tipoContrato = tipoContrato;
	}
	public String getEstadoOportunidad() {
		if(estadoOportunidad == null){
			return ProgramaDTO.ESTADO_OPORTUNIDAD;
		}
		return estadoOportunidad;
	}
	public void setEstadoOportunidad(String estadoOportunidad) {
		this.estadoOportunidad = estadoOportunidad;
	}
	public TreeMap<String, String> getEstadosOportunidad() {
		ProgramaDTO programaDTO = (ProgramaDTO)obtenerEnSession("programa");
		estadosOportunidad = new TreeMap<String, String>();
		if(ProgramaDTO.ESTADO_OPORTUNIDAD.equals(programaDTO.getEstado())){
			estadosOportunidad.put(ProgramaDTO.ESTADO_PROPUESTA_TECNICA, ProgramaDTO.ESTADO_PROPUESTA_TECNICA);
		}else if(ProgramaDTO.ESTADO_PROPUESTA_TECNICA.equals(programaDTO.getEstado())){
			if(CategoriaDTO.CATEGORIA_TIPO_CORPORATIVO.equals(programaDTO.getCategoriaDTO().getNombreCategoria())){
				estadosOportunidad.put(ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA, ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA);
			}
			estadosOportunidad.put(ProgramaDTO.ESTADO_NO_PERTINENTE, ProgramaDTO.ESTADO_NO_PERTINENTE);
			estadosOportunidad.put(ProgramaDTO.ESTADO_OPORTUNIDAD, ProgramaDTO.ESTADO_OPORTUNIDAD);
			estadosOportunidad.put(ProgramaDTO.ESTADO_PROPUESTA_FINANCIERA, ProgramaDTO.ESTADO_PROPUESTA_FINANCIERA);
		}else if(ProgramaDTO.ESTADO_PROPUESTA_FINANCIERA.equals(programaDTO.getEstado())){
			estadosOportunidad.put(ProgramaDTO.ESTADO_PROPUESTA_TECNICA, ProgramaDTO.ESTADO_PROPUESTA_TECNICA);
			if(CategoriaDTO.CATEGORIA_TIPO_ABIERTO.equals(programaDTO.getCategoriaDTO().getNombreCategoria())){
				estadosOportunidad.put(ProgramaDTO.ESTADO_ESTUDIO_MERCADO, ProgramaDTO.ESTADO_ESTUDIO_MERCADO);
			}else if(CategoriaDTO.CATEGORIA_TIPO_CORPORATIVO.equals(programaDTO.getCategoriaDTO().getNombreCategoria())){
				estadosOportunidad.put(ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA, ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA);
				estadosOportunidad.put(ProgramaDTO.ESTADO_PARA_APROBACION, ProgramaDTO.ESTADO_PARA_APROBACION);
			}
		}else if(ProgramaDTO.ESTADO_PARA_APROBACION.equals(programaDTO.getEstado())){
			estadosOportunidad.put(ProgramaDTO.ESTADO_PROPUESTA_TECNICA, ProgramaDTO.ESTADO_PROPUESTA_TECNICA);
			estadosOportunidad.put(ProgramaDTO.ESTADO_PROPUESTA_FINANCIERA, ProgramaDTO.ESTADO_PROPUESTA_FINANCIERA);
			estadosOportunidad.put(ProgramaDTO.ESTADO_RECHAZADO, ProgramaDTO.ESTADO_RECHAZADO);
			if(CategoriaDTO.CATEGORIA_TIPO_ABIERTO.equals(programaDTO.getCategoriaDTO().getNombreCategoria())){
				estadosOportunidad.put(ProgramaDTO.ESTADO_ESTUDIO_MERCADO, ProgramaDTO.ESTADO_ESTUDIO_MERCADO);
				estadosOportunidad.put(ProgramaDTO.ESTADO_MERCADEO, ProgramaDTO.ESTADO_MERCADEO);
			}else if(CategoriaDTO.CATEGORIA_TIPO_CORPORATIVO.equals(programaDTO.getCategoriaDTO().getNombreCategoria())){
				estadosOportunidad.put(ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA, ProgramaDTO.ESTADO_CANCELADO_POR_EMPRESA);
				estadosOportunidad.put(ProgramaDTO.ESTADO_EJECUCION, ProgramaDTO.ESTADO_EJECUCION);
			}
		}else if(ProgramaDTO.ESTADO_MERCADEO.equals(programaDTO.getEstado()) || ProgramaDTO.ESTADO_POSPONER.equals(programaDTO.getEstado())){
			estadosOportunidad.put(ProgramaDTO.ESTADO_EJECUCION, ProgramaDTO.ESTADO_EJECUCION);
			estadosOportunidad.put(ProgramaDTO.ESTADO_POSPONER, ProgramaDTO.ESTADO_POSPONER);
			estadosOportunidad.put(ProgramaDTO.ESTADO_CANCELADA, ProgramaDTO.ESTADO_CANCELADA);
		}else if(ProgramaDTO.ESTADO_ESTUDIO_MERCADO.equals(programaDTO.getEstado())){
			estadosOportunidad.put(ProgramaDTO.ESTADO_PARA_APROBACION, ProgramaDTO.ESTADO_PARA_APROBACION);
		}
		/*else if(ProgramaBean.ESTADO_RECHAZADO.equals(programaDTO.getEstado())){
			estadosOportunidad = new TreeMap<String, String>();
			estadosOportunidad.put(ProgramaBean.ESTADO_RECHAZADO, ProgramaBean.ESTADO_RECHAZADO);
		}*/
		return estadosOportunidad;
	}
	public void setEstadosOportunidad(TreeMap<String, String> estadosOportunidad) {
		this.estadosOportunidad = estadosOportunidad;
	}
	public String getEstadoPropuestaTecnica() {
		return estadoPropuestaTecnica;
	}
	public void setEstadoPropuestaTecnica(String estadoPropuestaTecnica) {
		this.estadoPropuestaTecnica = estadoPropuestaTecnica;
	}
	public TreeMap<String, String> getEstadosPropuestaTecnica() {
		estadosPropuestaTecnica = new TreeMap<String, String>();
		estadosPropuestaTecnica.put("Propuesta Tecnica", "Propuesta Tecnica");
		estadosPropuestaTecnica.put("Propuesta Financiera", "Propuesta Financiera");
		estadosPropuestaTecnica.put("Para revision", "Para revision");
		return estadosPropuestaTecnica;
	}
	public void setEstadosPropuestaTecnica(
			TreeMap<String, String> estadosPropuestaTecnica) {
		this.estadosPropuestaTecnica = estadosPropuestaTecnica;
	}
	public String getEstadoPropuestaFinanciera() {
		return estadoPropuestaFinanciera;
	}
	public void setEstadoPropuestaFinanciera(String estadoPropuestaFinanciera) {
		this.estadoPropuestaFinanciera = estadoPropuestaFinanciera;
	}
	public TreeMap<String, String> getEstadosPropuestaFinanciera() {
		estadosPropuestaFinanciera = new TreeMap<String, String>();
		estadosPropuestaFinanciera.put("Propuesta Tecnica", "Propuesta Tecnica");
		estadosPropuestaFinanciera.put("Propuesta Financiera", "Propuesta Financiera");
		estadosPropuestaFinanciera.put("Para revision", "Para revision");
		return estadosPropuestaFinanciera;
	}
	public void setEstadosPropuestaFinanciera(
			TreeMap<String, String> estadosPropuestaFinanciera) {
		this.estadosPropuestaFinanciera = estadosPropuestaFinanciera;
	}
	public String getEstadoAprobacion() {
		return estadoAprobacion;
	}
	public void setEstadoAprobacion(String estadoAprobacion) {
		this.estadoAprobacion = estadoAprobacion;
	}
	public TreeMap<String, String> getEstadosAprobacion() {
		estadosAprobacion = new TreeMap<String, String>();
		estadosAprobacion.put("Para revision", "Para revision");
		estadosAprobacion.put("Propuesta Tecnica", "Propuesta Tecnica");
		estadosAprobacion.put("Propuesta Financiera", "Propuesta Financiera");
		estadosAprobacion.put("Aprobada", "Aprobada");
		estadosAprobacion.put("Rechazada", "Rechazada");
		return estadosAprobacion;
	}
	public void setEstadosAprobacion(TreeMap<String, String> estadosAprobacion) {
		this.estadosAprobacion = estadosAprobacion;
	}
	public String getEstadoInformacionEspecifica() {
		return estadoInformacionEspecifica;
	}
	public void setEstadoInformacionEspecifica(String estadoInformacionEspecifica) {
		this.estadoInformacionEspecifica = estadoInformacionEspecifica;
	}
	public TreeMap<String, String> getEstadosInformacionEspecifica() {
		estadosInformacionEspecifica = new TreeMap<String, String>();
		estadosInformacionEspecifica.put("Aprobada", "Aprobada");
		estadosInformacionEspecifica.put("En ejecucion", "En ejecucion");
		return estadosInformacionEspecifica;
	}
	public void setEstadosInformacionEspecifica(
			TreeMap<String, String> estadosInformacionEspecifica) {
		this.estadosInformacionEspecifica = estadosInformacionEspecifica;
	}
	public String getHora() {
		return hora;
	}
	public void setHora(String hora) {
		this.hora = hora;
	}
	public TreeMap<String, String> getHoras() {
		horas = new TreeMap<String, String>();
		horas.put("00", "00");
		horas.put("01", "01");
		horas.put("02", "02");
		horas.put("03", "03");
		horas.put("04", "04");
		horas.put("05", "05");
		horas.put("06", "06");
		horas.put("07", "07");
		horas.put("08", "08");
		horas.put("09", "09");
		horas.put("10", "10");
		horas.put("11", "11");
		horas.put("12", "12");
		horas.put("13", "13");
		horas.put("14", "14");
		horas.put("15", "15");
		horas.put("16", "16");
		horas.put("17", "17");
		horas.put("18", "18");
		horas.put("19", "19");
		horas.put("20", "20");
		horas.put("21", "21");
		horas.put("22", "22");
		horas.put("23", "23");
		return horas;
	}
	public void setHoras(TreeMap<String, String> horas) {
		this.horas = horas;
	}
	public String getMinuto() {
		return minuto;
	}
	public void setMinuto(String minuto) {
		this.minuto = minuto;
	}
	public TreeMap<String, String> getMinutos() {
		minutos = new TreeMap<String, String>();
		minutos.put("00", "00");
		minutos.put("15", "15");
		minutos.put("30", "30");
		minutos.put("45", "45");
		return minutos;
	}
	public void setMinutos(TreeMap<String, String> minutos) {
		this.minutos = minutos;
	}
	public TreeMap<String, String> getTiposPropuestas() {
		tiposPropuestas = new TreeMap<String, String>();
		tiposPropuestas.put("Propuesta Tecnica", "PT");
		tiposPropuestas.put("Propuesta Financiera", "PF");
		return tiposPropuestas;
	}
	public void setTiposPropuestas(TreeMap<String, String> tiposPropuestas) {
		this.tiposPropuestas = tiposPropuestas;
	}
	public String getTipoCampana() {
		return tipoCampana;
	}
	public void setTipoCampana(String tipoCampana) {
		this.tipoCampana = tipoCampana;
	}
	public TreeMap<String, String> getTiposCampanas() {
		tiposCampanas = new TreeMap<String, String>();
		tiposCampanas.put("Facebook", "Facebook");
		tiposCampanas.put("Twitter", "Twitter");
		return tiposCampanas;
	}
	public void setTiposCampanas(TreeMap<String, String> tiposCampanas) {
		this.tiposCampanas = tiposCampanas;
	}
}
